#include <animation/AnimationManager.h>

namespace ne
{
    template<> AnimationManager* Singleton<AnimationManager>::mpInstance = 0;

    AnimationManager::AnimationManager()
    {
        mResourceType = "AnimationGroup";
        std::cout << "Construct Animation Manager\n";
    }

    AnimationManager::~AnimationManager()
    {
        std::cout << "Disconstruct Animation Manager\n";
    }

    AnimationManager& AnimationManager::GetSingleton()
    {
        assert(mpInstance);
        return *mpInstance;
    }

    AnimationManager* AnimationManager::GetSingletonPtr()
    {
        return mpInstance;
    }

    Resource* AnimationManager::createImplement(const uint64_t id,
                                                const std::string &name,
                                                const std::string &fileName,
                                                const bool isManual,
                                                ManualResourceLoader *pLoader)
    {
        return new AnimationGroup(this, id, name, fileName, isManual, pLoader);
    }
}
